#ifndef ALTERDATADIALOG_H
#define ALTERDATADIALOG_H

#include <QDialog>
#include <QMessageBox>
#include <QTableWidget>
#include "MyDatabase.h"
#include "CommandSendorReceive.h"

namespace Ui {
class AlterDataDialog;
}

class AlterDataDialog : public QDialog
{
    Q_OBJECT

public:
    /**
     * @brief  构造函数和析构函数
     */
    explicit AlterDataDialog(QWidget *parent = nullptr);
    ~AlterDataDialog();

signals:
    /**
     * @brief  发送QTableView控件中某行被修改的数据
     * @param  QTableView控件对象指针
     * @param  QStringList存放修改后的数据列表
     * @param  index 被修改的行索引
     */
    void senddatalist(QTableView*, const QStringList&, const int& index);

    /**
     * @brief  发送QTableView对象中添加的数据
     * @param  QTableView控件对象指针
     * @param  QStringList存放添加的数据列表
     * @param  QList存放需要添加的功能按键索引
     */
    void sendadddatalist(QTableView*, const QStringList&, const QList<IconNumber>&);

public slots:
    /**
     * @brief  初始化指定界面数据以及部分内部数据
     * @param  table  QTableView控件对象指针
     * @param  index  table行索引
     * @param  operation_type  功能码
     */
    void display_specified_ViewWindow(QTableView* table,
                                      const int& index,
                                      const int& operation_type);

private slots:
    /**
     * @brief  发送指定任务的按键功能
     */
    void on_pushButton_alter_vehicle_fault_clicked();

    void on_pushButton_ok_vehicle_profile_clicked();

    void on_pushButton_ok_map_config_clicked();

    void on_pushButton_ok_district_seats_clicked();

    void on_pushButton_ok_forward_obstacle_strategy_clicked();

    void on_pushButton_ok_back_obstacle_strategy_clicked();

    void on_pushButton_ok_left_obstacle_strategy_clicked();

    void on_pushButton_ok_right_obstacle_strategy_clicked();

    void on_pushButton_ok_tasks_clicked();

    void on_pushButton_ok_vehicle_action_set_clicked();

    void on_pushButton_ok_action_group_clicked();

    void on_pushButton_alter_nodes_clicked();

    void on_pushButton_alter_paths_clicked();

private:
    Ui::AlterDataDialog *ui;
    QTableView          *_QView;
    PackageData         *ToJson;
    int      _rowindex;
    QString  _Id;          //数据库表的主键
    int      _operation_type;
};

#endif // ALTERDATADIALOG_H
